import {
  defineConfig
} from "vite";
import vue from "@vitejs/plugin-vue";
import path from 'path'
import copy from 'rollup-plugin-copy'
import svgLoader from 'vite-svg-loader';
import viteCompression from 'vite-plugin-compression'
import cesium from 'vite-plugin-cesium'; // 引入插件
// https://vitejs.dev/config/
export default defineConfig(async () => ({
  define: {
    'process.env.NODE_ENV': JSON.stringify('production'),
  },
  plugins: [vue(), svgLoader(),cesium()],
  // 项目根目录
  root: process.cwd(),
  // 在生产中服务时的基本公共路径
  base: '/',
  // 配置中指明将会把 serve 和 build 时的模式都覆盖掉,serve 时默认 'development'，build 时默认 'production'
  mode: 'development',
  // 在开发时会被定义为全局变量，而在构建时则是静态替换
  //define: '',
  // 静态资源服务的文件夹
  publicDir: 'assets',
  publicPath: '/',
  //存储缓存文件的目录
  cacheDir: "node_modules/.vite",
  // define: {
  //   'process.env': process.env
  // },

  resolve: {
    // 目录别名
    alias: {
      //'@': path.resolve(__dirname, '/src'),
      '@': path.resolve('src')

    },


  },
  build: {
    // 包含额外文件类型
    assetsInclude: ['**/*.json'],

    outDir: 'dist',
    assetsDir: 'assets',
    plugins: [
      
      copy({
        targets: [{
          src: 'public/*.json',
          dest: 'dist'
        }],
        hook: 'writeBundle' // 在打包结束后执行复制
      })
    ],
  },

  // Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build`
  //
  // 1. prevent vite from obscuring rust errors
  clearScreen: false,
  // 2. tauri expects a fixed port, fail if that port is not available
  server: {
    port: 1420,
    strictPort: true,
    watch: {
      // 3. tell vite to ignore watching `src-tauri`
      ignored: ["**/src-tauri/**"],
    },
    proxy: {
      // 当请求路径以 /api 开头时，转发到目标服务器
      '/api': {
        target: 'https://zhangteng.cloud/5001',
        changeOrigin: true, // 需要虚拟主机站点
        //rewrite: path => path.replace(/^\/api/, '') // 重写请求路径
      },
      '/gpt': {
        target: 'https://api.132999.xyz/',
        changeOrigin: true, // 需要虚拟主机站点
        //rewrite: path => path.replace(/^\/api/, '') // 重写请求路径
      },
      '/chat': {
        target: 'http://119.45.240.39:11000/',
        changeOrigin: true, // 需要虚拟主机站点
        //rewrite: path => path.replace(/^\/api/, '') // 重写请求路径
      },
    }
  },
}));